﻿<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>作业</title>
    <style>
        .wrap {
            width: 700px;
            height: 100px;
            background-color: #f0f0f0;
            margin: 0 auto;
        }
        .wrap .redbox ,
        .wrap .bluebox {
            float: left;
        }
        .wrap .redbox {
           width: 600px
        }
        .wrap .redbox ul , .wrap .bluebox ol{
            padding: 0;
            margin: 0;
            list-style: none;
        }
        .wrap .redbox li ,  .wrap .bluebox li{
            width: 80px;
            height: 80px;
            border-radius: 50%;
            color: #fff;
            text-align: center;
            line-height: 80px;
            margin: 10px;
            float: left;
        }
        .wrap .redbox li {
            background-color: #f00;
        }
        .wrap .bluebox {
            width: 100px;
        }
        .wrap .bluebox li {
            background-color: #00f;
        }
    </style>
</head>
<body>
    <div class="wrap">
        <div class="redbox">
            <ul>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
        </div>
        <div class="bluebox">
            <ol>
                <li></li>
            </ol>
        </div>
    </div>

    <script>
        // 需求
            // 刷新页面产生一注随机彩票
            // 彩票规则
            // 红色数字： 1 ~ 33 
            // 蓝色数字:  1 ~ 16
            // 6个随机不重复的红色数字和1一个随机蓝色数字可以组成一注彩票

            // 思路：
                // 定义红色数字数组和蓝色数字数字分别记录对应的数据
                // 然后从数组中根据随机索引值获取数字
                // 组成一注彩票，渲染在页面对应的标签


            // 编码：
                // 1. 获取相关的标签
                var red_elements = document.querySelectorAll(".redbox li");
                var blue_el = document.querySelector(".bluebox li");

                // 2. 定义数组 记录不同颜色的数字
                var red_array = [];
                var blue_array= [];

                // 3. 循环 产生数据
                for(var num = 1 ; num <= 33 ; num ++){
                    // 添加数字
                    red_array.push(num);
                    // 判断小于等于16
                    if(num <= 16){
                        blue_array.push(num);
                    }
                }
                // console.log(red_array);
                // console.log(blue_array);

                // 4. 定义函数 产生随机数
                var myRandom = function(len) {
                    // n >= 0, n <len
                    // 产生指定范围的随机数
                    return Math.floor(Math.random()*len);
                }

                // 5. 处理红色的数字（随机不重复）
                for(var i = 0 ; i < red_elements.length ; i ++){
                    // 随机的索引值
                    var rIndex = myRandom(red_array.length);
                    // 截取索引值对应的元素，并从数组中删除 
                    // arr.splice(索引值，截取元素的数量) ，该方法的返回值是数组
                    var res = red_array.splice(rIndex,1);
                    // console.log(res);
                    // 渲染每个随机不重复的数字
                    red_elements[i].innerText = res[0];
                }
                // 6. 处理蓝色数字
                var index = myRandom(blue_array.length);
                blue_el.innerText = blue_array[index];
                
    </script>

</body>
</html>